A field programmable gate array (FPGA) is a type of integrated circuit consisting of an array of programmable logic blocks interconnected by a programmable routing network and programmable input/output cells. Programming of the logic blocks, the routing network and the input/output cells is selectively completed to make the necessary interconnections that establish one configuration thereof to provide the desired system operation/function for a particular application.
The present inventors have recently developed methods of built-in self-testing the array of programmable logic blocks and the programmable routing network in FPGAs at the device, board and system levels. These methods are set out in detail in pending U.S. patent applications Ser. Nos. 08/729,117, 08/974,799 and 09/059,552. The full disclosures in these patent applications are incorporated herein by reference.
In each of these prior methods, the reprogrammability of an FPGA is exploited so that the FPGA is configured exclusively with built-in self-test (BIST) logic during off-line testing and subsequently reconfigured to its normal operating configuration. In this way, testability at every level is achieved without utilizing FPGA resources. In other words, the BIST logic simply "disappears" when the FPGA is reconfigured for its normal system function. While the use of these test methods is effective in testing the FPGAs, they are limited to off-line testing to determine the existence and location of faults within the FPGA resources.
In many high-reliability and high-availability applications, such as, space missions or telecommunication network routers, however, the FPGA hardware must work continuously and cannot be taken off-line for testing. For these systems, on-line testing must be performed concurrently with normal system operation. When faults are detected and located in the FPGA hardware of these systems, the FPGA hardware must be reconfigured to bypass the identified faulty resources. Such a process necessarily relies on spare parts or FPGA resources to replace the defective parts.